
package com.insigma.business.qrcode.soldier._bff;




import com.insigma.business.qrcode.common.annotation.ApiServiceType;
import com.insigma.business.qrcode.common.template.BasePagingResponse;
import com.insigma.business.qrcode.common.vo.BaseDeleteRequest;
import com.insigma.business.qrcode.common.vo.BaseResponse;
import com.insigma.business.qrcode.soldier.dto.*;
import com.insigma.business.qrcode.soldier.request.*;

import java.util.List;


public interface SoldierApplyInfoBffProvider {

    
    @ApiServiceType(value = "all.ss.soldier.apply.save", name = "老兵码申请", desc = "老兵码申请", opsLog = "老兵用户")
    BaseResponse<String> saveSoldierApplyInfo(final SoldierApplyInfoInsertRequest soldierApplyInfoInsertRequest);

    @ApiServiceType(value = "all.ss.soldier.apply.checkSoldierApplyInfoBySoldierId", name = "校验老兵ID是否申请过老兵码", desc = "校验老兵ID是否申请过老兵码", opsLog = "老兵用户")
    BaseResponse<String> checkSoldierApplyInfoBySoldierId(final BaseApiRequest request);

    @ApiServiceType(value = "all.ss.soldier.apply.fwz.save", name = "老兵码申请", desc = "老兵码申请", opsLog = "老兵用户")
    BaseResponse<String> saveSoldierApplyInfoByFWZ(final SoldierApplyInfoInsertRequest soldierApplyInfoInsertRequest);

    
    @ApiServiceType(value = "all.ss.soldier.apply.get", name = "老兵码审核-查询审核详情", desc = "老兵码审核-查询审核详情")
    BaseResponse<SoldierApplyInfoDTO> getSoldierApplyInfoByIdCardNo(final BaseApiRequest request);


    //查询代办
    @ApiServiceType(value = "all.ss.soldier.apply.wait.list", name = "老兵码申请-查询待办", desc = "老兵码申请-查询待办")
    BasePagingResponse<List<SoldierApplyInfoDTO>> listWaitTasks(SoldierApplyInfoSearchRequest request);


    
    @ApiServiceType(value = "all.ss.soldier.apply.done.list", name = "老兵码申请-查询已办", desc = "老兵码申请-查询已办")
    BasePagingResponse<List<SoldierApplyInfoDTO>> listDoneTasks(SoldierApplyInfoSearchRequest request);

    
    @ApiServiceType(value = "all.ss.soldier.apply.complete.task", name = "审批 并更新信息", desc = "审批 并更新信息", opsLog = "老兵用户")
    BaseResponse<Boolean> completeTask(final SoldierApplyInfoInsertRequest soldierApplyInfoInsertRequest);

    
    @ApiServiceType(value = "all.ss.soldier.apply.search", name = "审批 并更新信息", desc = "审批 并更新信息")
    BasePagingResponse<List<SoldierApplyInfoDTO>> searchSoldierApplyInfo(final SoldierApplyInfoSearchRequest soldierApplyInfoSearchRequest);

    //老兵码申请用
    @ApiServiceType(value = "common.ss.soldier.apply.distinct.contact.no", name = "查询区县退役局电话", desc = "查询区县退役局电话")
    BaseResponse<ContactNoDTO> queryDistinctContactNo(SimpleApiRequest request);
   
    BaseResponse<SoldierApplyInfoDTO> getSoldierApplyInfo(final BaseGetRequest baseGetRequest);


    @ApiServiceType(value = "all.ss.soldier.apply.delete", name = "老兵码审核-删除数据", desc = "老兵码审核-删除数据")
    BaseResponse<Integer> deleteSoldierApplyInfo(final BaseDeleteRequest deleteRequest);

    
    @ApiServiceType(value = "gov.ss.soldier.apply.real.delete", name = "真实删除未成功的apply", desc = "真实删除未成功的apply", opsLog = "老兵用户")
    BaseResponse<Integer> deleteUnsuccessfulApply(final BaseDeleteRequest deleteRequest);

    //移动端老兵码申请
    @ApiServiceType(value = "all.ss.soldier.apply.reapply", name = "重新申请老兵码", desc = "重新申请老兵码", opsLog = "老兵用户")
    BaseResponse<String> reApplySoldierQR(SoldierApplyInfoUpdateRequest request);

//临时老兵码申请
    @ApiServiceType(value = "all.ss.soldier.apply.temporary.save", name = "临时老兵-申请老兵码", desc = "临时老兵-申请老兵码", opsLog = "老兵用户")
    BaseResponse<String> saveSoldierApplyInfoOfOuterTemporary(final SoldierApplyInfoInsertRequest soldierApplyInfoInsertRequest);

    
    @ApiServiceType(value = "all.ss.soldier.apply.temporary.remaining", name = "临时老兵-剩余次数", desc = "临时老兵-剩余次数")
    BaseResponse<Integer> getRemainingTimesOfOuterTemporary();

    
    @ApiServiceType(value = "all.ss.soldier.apply.outsider.save", name = "外来老兵-申请老兵码", desc = "外来老兵-申请老兵码", opsLog = "老兵用户")
    BaseResponse<String> saveSoldierApplyInfoOfOutsider(final SoldierApplyInfoInsertRequest soldierApplyInfoInsertRequest);

    //常驻老兵码申请
    @ApiServiceType(value = "all.ss.soldier.apply.outsider.reapply", name = "外来老兵-申请老兵码", desc = "外来老兵-申请老兵码", opsLog = "老兵用户")
    BaseResponse<String> reApplySoldierQROfOutsider(SoldierApplyInfoUpdateRequest request);


    @ApiServiceType(value = "gov.ss.soldier.apply.outsider.update", name = "修改外来老兵信息", desc = "修改外来老兵信息", opsLog = "老兵用户")
    BaseResponse<String> updateApplyInfoOfOutsider(SoldierApplyInfoUpdateRequest request);

       @ApiServiceType(value = "gov.ss.soldier.hz.apply.search", name = "查询常住老兵", desc = "查询常住老兵")
    BasePagingResponse<List<SoldierApplyInfoDTO>> getCzSoldierApplyInfo(final SoldierApplyInfoSearchRequest searchRequest);

    @ApiServiceType(value = "gov.ss.soldier.check.search", name = "非杭老兵码审核查询", desc = "非杭老兵码审核查询")
    BasePagingResponse<List<SoldierApplyInfoDTO>> getCheckApplyInfo(final SoldierApplyInfoSearchRequest searchRequest);

    @ApiServiceType(value = "gov.ss.soldier.check.search.all", name = "非杭老兵码审核全部查询", desc = "非杭老兵码审核全部查询")
    BasePagingResponse<List<SoldierApplyInfoDTO>> searchAllCheckApplyInfo(final SoldierApplyInfoSearchRequest searchRequest);

    @ApiServiceType(value = "gov.ss.soldier.check.process", name = "查询审核流程", desc = "查询审核流程")
    BaseResponse<List<SoldierApplyCheckDTO>> getCheckProcess(final SoldierApplyCheckRequest soldierApplyCheckRequest);

    @ApiServiceType(value = "all.ss.soldier.base.person.check", name = "根据身份证和名字查询", desc = "根据身份证和名字查询")
    BaseResponse<SoldierBasicInfoDTO> getSoldierBasicInfoByCardAndNameAndCheck(BaseApiRequest request);

    @ApiServiceType(value = "all.ss.soldier.assign.code.update", name = "老兵码赋码切换", desc = "老兵码赋码切换")
    BaseResponse<Boolean> updateSoldierApplyInfoAssignCode(final SoldierApplyInfoAssignCodeUpdateRequest request);

}
